1. Field of the Invention
This invention relates generally to the field of computer programming. More particularly, the invention relates to a system and method for synchronizing data sharing across multiple interpreted code engines (e.g., Java virtual machines) and/or applications.
2. Description of the Related Art
Java is an object-oriented programming language used to create computer programs which are platform-independent. That is, the same Java object code may be used on numerous different operating systems including Windows 95, Unix, Solaris, and Macintosh; and processors such as Intel(copyright) Pentium(copyright)-class processors, MIPS processors and AMD Athlon(copyright) processors, to name a few. This interoperability makes Java an ideal choice for programming Internet applications.
Once a program is written in Java source code, the Java compiler generates object code in the form of a Java application or applet. Technically, an xe2x80x9cappletxe2x80x9d is an application configured specifically to run within a Web browser such as Internet Explorer(copyright) or Netscape Navigator(copyright) (e.g., embedded in-line as objects within Hypertext Markup Language (xe2x80x9cHTMLxe2x80x9d) documents). As illustrated in FIG. 1, Java applets and applications 100 are executed by a runtime interpreter residing on the client computer 130 commonly referred to as a Java xe2x80x9cvirtual machinexe2x80x9d 110. The Java virtual machine 110 interprets the platform-independent program code from the application or applet 100 into code which the native client microprocessor 120 can execute (e.g., x86 instructions in the case of a Pentium(copyright)-class processor).
More than one virtual machine and/or Java application/applet may be concurrently executed on a client. One limitation of prior systems, however, is that no built in mechanism exists for sharing data between two or more virtual machines and/or Java applications. Accordingly, what is needed is a system and method for sharing data between multiple virtual machines and/or applications. What is also needed is a system and method for caching data and maintaining data coherency when data is shared between virtual machines and/or applications.